﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PCBase.UIControls;

namespace VisionCore
{
    public class RecipeModel
    {
        [Category("a.基本参数"), DisplayName("01.工单参数名"), Description("工单名称，由大小写字母，数字字符组成,不可使用符号")]
        [EditorAttribute(typeof(CommonInputEditor), typeof(System.Drawing.Design.UITypeEditor))]
        public string PRM_Name { get; set; } = "DeviceName";

        [Category("a.基本参数"), DisplayName("02.晶粒参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_DieInfo Die { get; set; } = new PRM_DieInfo();

        [Category("a.基本参数"), DisplayName("03.Tray载出冶具"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_PanelInfo Panel { get; set; } = new PRM_PanelInfo();

        [Category("a.基本参数"), DisplayName("04.Tray参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_FixtureInfo Tray { get; set; } = new PRM_FixtureInfo();

        [Category("a.基本参数"), DisplayName("05.NGTray参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_FixtureInfo NGTray { get; set; } = new PRM_FixtureInfo();


        [Category("b.制程参数"), DisplayName("01.模式选择"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Mode_Rec Mode { get; set; } = new PRM_Mode_Rec();

        [Category("b.制程参数"), DisplayName("02.倒膜参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Exc_Rec Exc { get; set; } = new PRM_Exc_Rec();

        [Category("b.制程参数"), DisplayName("03.载入移载夹取参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Get_Rec LDTRGet { get; set; } = new PRM_Get_Rec();

        [Category("b.制程参数"), DisplayName("04.载入移载夹爪参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_ClampPar_Rec LDTRClamp { get; set; } = new PRM_ClampPar_Rec();

        [Category("b.制程参数"), DisplayName("05.载出移载夹爪参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_ClampPar_Rec ULDTRClamp { get; set; } = new PRM_ClampPar_Rec();

        [Category("b.制程参数"), DisplayName("06.镭射参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Laser_Rec LaserParam { get; set; } = new PRM_Laser_Rec();

        [Category("b.制程参数"), DisplayName("07.位置OffSet"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_ProcessOffSet OffSet { get; set; } = new PRM_ProcessOffSet();

        [Category("c.位置参数"), DisplayName("1.入料CV1_Y轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_LDCV_Y CV1_Y { get; set; } = new PRM_LDCV_Y();

        [Category("c.位置参数"), DisplayName("2.入料CV1_Y轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_LDCV_Y CV2_Y { get; set; } = new PRM_LDCV_Y();

        [Category("c.位置参数"), DisplayName("3.CCD1位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_CCDModule CCD1 { get; set; } = new PRM_CCDModule();
        [Category("c.位置参数"), DisplayName("4.CCD2位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_CCDModule CCD2 { get; set; } = new PRM_CCDModule();

        [Category("c.位置参数"), DisplayName("5.检测CV1_Y轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_InspCV_Y Insp1_Y { get; set; } = new PRM_InspCV_Y();

        [Category("c.位置参数"), DisplayName("6.检测CV2_Y轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_InspCV_Y Insp2_Y { get; set; } = new PRM_InspCV_Y();

        [Category("c.位置参数"), DisplayName("7.检测CV3_Y轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_InspCV_Y Insp3_Y { get; set; } = new PRM_InspCV_Y();

        [Category("c.位置参数"), DisplayName("8.检测CV4_Y轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_InspCV_Y Insp4_Y { get; set; } = new PRM_InspCV_Y();

        [Category("c.位置参数"), DisplayName("9.检测模组1_RM_Z轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Insp_Y_RM Insp1_RM_Z { get; set; } = new PRM_Insp_Y_RM();
        [Category("c.位置参数"), DisplayName("10.检测模组2_RM_Z轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Insp_Y_RM Insp2_RM_Z { get; set; } = new PRM_Insp_Y_RM();
        [Category("c.位置参数"), DisplayName("11.检测模组3_RM_Z轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Insp_Y_RM Insp3_RM_Z { get; set; } = new PRM_Insp_Y_RM();
        [Category("c.位置参数"), DisplayName("12.检测模组4_RM_Z轴位置参数"), Description("")]
        [TypeConverter(typeof(PropertiesExpandConverter))]
        public PRM_Insp_Y_RM Insp4_RM_Z { get; set; } = new PRM_Insp_Y_RM();

       

        //[Category("c.位置参数"), DisplayName("07.载出平台位置参数"), Description("")]
        //[TypeConverter(typeof(PropertiesExpandConverter))]
        //public PRM_ULDST_Rec ULDST { get; set; } = new PRM_ULDST_Rec();

        //[Category("c.位置参数"), DisplayName("08.相机轴对位点位置参数"), Description("")]
        //[TypeConverter(typeof(PropertiesExpandConverter))]
        //public PRM_ALGCCD ALG { get; set; } = new PRM_ALGCCD();
    }
}
